# 2025.01.15力扣网刷题
#  使三个字符串相等——字符串——简单
# 给你三个字符串 s1、s2 和 s3。 你可以根据需要对这三个字符串执行以下操作 任意次数 。
# 在每次操作中，你可以选择其中一个长度至少为 2 的字符串 并删除其 最右位置上 的字符。
# 如果存在某种方法能够使这三个字符串相等，请返回使它们相等所需的 最小 操作次数；否则，返回 - 1。
# 示例 1：
# 输入：s1 = "abc"，s2 = "abb"，s3 = "ab"
# 输出：2
# 解释：对 s1 和 s2 进行一次操作后，可以得到三个相等的字符串。
# 可以证明，不可能用少于两次操作使它们相等。
# 示例 2：
# 输入：s1 = "dac"，s2 = "bac"，s3 = "cac"
# 输出： - 1
# 解释：因为 s1 和 s2 的最左位置上的字母不相等，所以无论进行多少次操作，它们都不可能相等。因此答案是 - 1 。
# 提示：
# 1 <= s1.length, s2.length, s3.length <= 100
# s1、s2 和 s3 仅由小写英文字母组成。

class Solution(object):
    def findMinimumOperations(self, s1, s2, s3):
        """
        :type s1: str
        :type s2: str
        :type s3: str
        :rtype: int
        """
        len1, len2, len3 = len(s1), len(s2), len(s3)
        ans, i = 0, 0
        while i < len1 and i < len2 and i < len3 and s1[i] == s2[i] == s3[i]:
            i += 1
        ans = len1 + len2 + len3 - 3 * i
        return ans if i != 0 else -1